#include <iostream>
#include <stack>
#include <queue>
#include <list>
using namespace std;








// class MinStack {
// public:
//     struct valcount{
//         int val = 0;
//         int count = 0;
//     };
//     MinStack() {

//     }
    
//     void push(int val) {
//         s1.push(val);
//         if(min.size()<1 || val<min.top().val)
//         {
//             valcount t;
//             t.val = val;
//             t.count = 1;
//             min.push(t);
//         }
//         else if(val==min.top().val)
//         {
//             min.top().count++;
//         }
//     }
    
//     void pop() {
//         int t = s1.top();
//         s1.pop();
//         if(t<=min.top().val)
//         {
//             min.top().count--;
//             if(min.top().count<=0)
//             {
//                 min.pop();
//             }
//         }
//     }
    
//     int top() {
//         return s1.top();
//     }
    
//     int getMin() {
//         return min.top().val;
//     }
//     stack<int> s1;
//     stack<valcount> min;
// };




// int main()
// {
//     Solution s;
//     s.evalRPN({"2","1","+","3","*"});
// }
